package edu.cgpi.core.entidade;

import java.util.HashSet;
import java.util.Set;

import com.thoughtworks.xstream.annotations.XStreamAlias;

/**
 * Esta classe representa a estrutura de um 
 * circulo normal, ou sejá, o algoritmo de 
 * obtenção dos pontos não utiliza da 
 * simetria para diminuir o esforço.
 */

public class CirculoComum extends AbstractCirculo {

	public CirculoComum(Ponto centro, Double raio) {
		super(centro, raio);
	}
	
	public CirculoComum(Ponto centro, Ponto pontoDoCirculo) {
		super(centro, pontoDoCirculo);
	}

	/**
	 * Obtém os pontos deste Círculo. Esta implementação
	 * calcula um ponto por iteração do loop.
	 */
	public Set<Ponto> obterPontos() {
		Set<Ponto> pontos = new HashSet<Ponto>();
		for (double angulo = 0; angulo < 360; angulo = angulo + 0.25) {
			Double x = calcularX(angulo);
			Double y = calcularY(angulo);
			pontos.add(new Ponto(x, y));
		}
		return pontos;
	}

	@Override
	public Double calcularDistancia(FormaGeometrica forma) {
		// TODO Auto-generated method stub
		return null;
	}
}